import sys
from PyQt5.QtWidgets import *
 
class QInputDialogDemo(QWidget):
    def __init__(self):
        super(QInputDialogDemo,self).__init__()
        self.initUI()
 
    def initUI(self):
        self.setWindowTitle('QInputDialogDemo')
        self.resize(400,150)
        #表单布局
        layout=QFormLayout()
 
        self.btn1=QPushButton('获取列表中的选项')
        self.btn1.clicked.connect(self.getItem)
        self.lineEdit1=QLineEdit()
        layout.addRow(self.btn1,self.lineEdit1)
 
        self.btn2 = QPushButton('获取字符串')
        self.btn2.clicked.connect(self.getText)
        self.lineEdit2 = QLineEdit()
        layout.addRow(self.btn2, self.lineEdit2)
 
        self.btn3 = QPushButton('获取整数')
        self.btn3.clicked.connect(self.getInt)
        self.lineEdit3 = QLineEdit()
        layout.addRow(self.btn3, self.lineEdit3)
 
        self.setLayout(layout)
    #槽函数
    #下拉框
    def getItem(self):
        items=('C','C++','Ruby','Python','Java')
        #返回的是个元组，第一个元素就是input里对应的内容，第二个元素是个布尔量，如果对话框是按OK则返回1，取消就是返回0
        item,ok=QInputDialog.getItem(self,'请选择编程语言','语言列表',items)
        print(ok)#点了OK就返回True,点了Cancel就返回False
        if ok and item:
            self.lineEdit1.setText(item)
            print(ok)
    #字符串
    def getText(self):
        text,ok=QInputDialog.getText(self,'文本输入框','输入姓名')
        if ok and text:
            self.lineEdit2.setText(text)
    #整数
    def getInt(self):
        num,ok=QInputDialog.getInt(self,'整数输入框','输入数字')
        if ok and num:
            self.lineEdit3.setText(str(num))
 
 
if __name__=='__main__':
    app=QApplication(sys.argv)
    main=QInputDialogDemo()
    main.show()
    sys.exit(app.exec_())
